With the advent and proliferation of different technologies, each of which optimized different access-types and each of which employ different codecs, it is not an uncommon phenomenon that a call gets transcoded as it traverses various networks employing different kinds of technology. For example, different codecs are used for coding and decoding voice traffic carried in different networks. By way of example, in LTE networks Adaptive Multi-Rate codecs are used for voice; in CDMA networks Enhanced Variable-Rate Codecs (EVRCs) are used for voice, in Web Real-time Communication (WebRTC) networks OPUS codecs are used for voice; and in traditional Public Switched Telephone Networks (PSTNs) G711 codecs are used for voice. In a similar way, different codecs are employed for the transmission of video across different networks optimized for technologies. For example, in LTE networks the use of H.264 codecs is recommended for video while in a WebRTC network VP8 codecs are used for video transmission.
With unified communications, a user accesses the same set of services from multiple accesses using different types of endpoint equipment. For example, the same service may be, and often is, accessed by a user through a mobile smart phone having LTE access, through a web-browser on the mobile smart phone or a computer using WebRTC access. This necessitates the need for transcoding as the services are invoked by various users employing a mix of technologies. This transcoding is not just for audio streams but also for video streams. For example, to access a cloud-based video conferencing service, the clients (i.e., user device and related applications) may use either the more-prevalent H.264 based client and associated codec or may use the more recent WebTRC recommended VP8 based client and associated codec.
Session Border Controllers (SBCs) employed in these networks therefore need to be able to provide transcoding not only for audio streams but also video streams. SBC nodes typically provide video transcoding by invoking Media Resource Function nodes and/or equipment referred to herein as MRFs, which have specialized functions to provide audio and video transcoding. The SBCs typically invoke an MRF using a Session Initiation Protocol (SIP) based interface. With recent trends, software MRFs have become more common. While these software MRFs provide transcoding, they do not have built in High Availability (HA) functionality.
In view of the above discussion, there is a need for new methods and apparatus to provide media redirection between (the logical ingress and egress) SBC(s) with the ability to switch between different MRFs as a way to address the lack of High Availability functionality in some MRFs.
In view of the above discussion, there is also a need for new methods and apparatus for providing media redirection from a currently selected MRF (which is providing transcoding) towards a different MRF in such a way that the actual peers/clients receiving service from the currently selected MRF continue to receive service without any additional signaling towards the actual peers/clients.
In view of the above discussion, there is also a need for new methods and apparatus that provide MRF redundancy and resiliency and is transparent from the end users perspective.
In view of the above discussion, there is also a need for new methods and apparatus for minimizing the time it takes to detect a status condition indicative of a failure of a MRF.
In view of the above discussion, there is also a need to minimize the signaling required to redirect a media call flow from a first MRF to a second MRF after the detection of a status condition indicative of a failure of a MRF so as to minimize the interruption in the call experienced by the end devices of the media call flow.